/*
 * testPunteros.cpp
 *
 *  Created on: 24/11/2011
 *      Author: putaro
 */

#include "GeneradorPunteros.h"
#include "PunterosHandler.h"

unsigned int testGenerar(const string &ruta){
	GeneradorPunteros generador(ruta);
	unsigned int offset = 0;
	unsigned int max = 32;
	for (unsigned int i = 1 ; i< max ; i++){
		unsigned int auxiliar;
		auxiliar = generador.guardarPunteroFrecuencia(i,i+1);
		cout<<"Codificado Delta: Puntero "<<i<<" Frecuencia "<<i+1<<" con offset "<<auxiliar<<endl;
		if(i == max/2)
			offset = auxiliar;
	}
	return offset;
}

void testHandler(const string &ruta , unsigned int offset){
	unsigned int puntero = 0;
	unsigned int frecuencia = 0;
	PunterosHandler punterosHandler(ruta);
	punterosHandler.seek(0);
	for(unsigned int i = 1 ; i<64;i++)
		cout<<punterosHandler.getBit();
	cout<<endl;
	punterosHandler.seek(0);
	for(unsigned int i = 1 ; i<30; i++){
		punterosHandler.getPunteroFrecuencia(puntero,frecuencia);
		cout<<"Decodificado Delta: Puntero "<<puntero<<" = "<<i<<" Frecuencia "<<frecuencia<<" = "<<i+1<<endl;
	}
	punterosHandler.seek(offset);
	for(unsigned int i = 1 ; i<5; i++){
		punterosHandler.getPunteroFrecuencia(puntero,frecuencia);
		cout<<"Decodificado Delta: Puntero "<<puntero<<" Frecuencia "<<frecuencia<<endl;
	}
}

void testPunteros(const string &rutaDestino){

	cout<<"Test Punteros"<<endl;
	cout<<"--------------------------"<<endl;
	testHandler(rutaDestino , testGenerar(rutaDestino));
	cout<<endl;
	cout<<"Fin TestPunteros"<<endl;
	cout<<"X-----------------------------"<<endl;
	cout<<endl;
}
